package com.dearbinge.data.dao.collect;

import com.baomidou.mybatisplus.plugins.Page;
import com.dearbinge.data.pojo.collect.Collect;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 收藏dao
 *
 * @author wes
 * @date 2019/2/20
 */

@Mapper
public interface CommodityCollectMapper {

    /**
     * 根据商品id和用户id查询收藏对象
     *
     * @param userId      用户id
     * @param commodityId 商品id
     * @return 结果提示
     */
    Collect getCollect(@Param("userId") String userId, @Param("commodityId") String commodityId);

    /**
     * 根据商品id和用户id查询收藏对象 不管删除不删除
     *
     * @param userId      用户id
     * @param commodityId 商品id
     * @return 结果提示
     */
    Collect getCollectIgnoreDelete(@Param("userId") String userId, @Param("commodityId") String commodityId);


    /**
     * 通过id查找收藏
     *
     * @param id
     * @return
     */
    Collect getCollectById(Integer id);


    /**
     * 增加收藏
     *
     * @param collect 收藏
     * @return 结果
     */
    Integer insertCollect(Collect collect);

    /**
     * 修改收藏
     *
     * @param collect 收藏
     * @return 结果
     */
    Integer updateCollect(Collect collect);

    /**
     * 删除
     *
     * @param id id
     * @return 结果提示
     */
    Integer deleteCollect(Integer id);

    /**
     * 查询用户的商品收藏
     *
     * @param userId 用户id
     * @param page   分页
     * @return 收藏集
     */
    List<Collect> listCollectByUserId(String userId, Page page);

    /**
     * 统计一个用户的全部收藏总数
     *
     * @param userId 用户id
     * @return 总计
     */
    Integer countCollectByUserId(String userId);


    /**
     * 根据商品id 查询收藏总数
     *
     * @param id 商品id
     * @param shopId 店铺id
     * @return 总数
     */
    Integer countCollectTotal(@Param("id") Integer id,@Param("shopId") String shopId);



}
